近期因實際的案件需求,所以仔細研究了這個問題,在此說明一下關鍵的部分,讓大家有所了解。
電商網站提供使用 FB 帳號登入(或註冊)的開發程序為 :
先使用 FB 的開發者帳號,在 FB 的 facebook for developers 建立一個 [facebook 登入] 的應用程式,做好相關設定,包含應用程式網域、有效的 OAuth 重新導向 URI 等等。
在你的電商系統上,安裝(或開發) FB 帳號登入模組,並設定取自前一步驟所得到的 [facebook 登入] 應用程式編號、應用程式密鑰等資料。
在電商網站上使用 FB 帳號登入(或註冊)的運作程序為 :
會員點擊商店提供的 FB 帳號登入連結 - 這個連結是由 FB 帳號登入模組所產生,包含使用 [facebook 登入] 應用程式編號、應用程式密鑰所編碼產生的參數,以提供 facebook 系統進行解碼及驗證來源是否可信。
facebook 系統通過驗證及授權 - 通過 facebook 系統驗證及授權之後,網頁會被導回 facebook for developers [facebook 登入] 應用程式中所設定的 OAuth 重新導向 URI,通常是 FB 帳號登入模組準備好的接收網址。
FB 帳號登入模組取得 facebook 的使用者個人資料 - 若 facebook 系統通過驗證及授權,FB 帳號登入模組就能透過 facebook API 取得該 facebook 使用者的個人資料,包含 facebook User ID、姓名、Email ....
進行電商系統的登入或註冊 - facebook 系統的 [facebook 登入] 應用程式,並沒有提供登入電商系統的功能,只提供 facebook 使用者帳號的驗證及授權,電商系統上的 FB 帳號登入模組,必須自行處理登入系統或註冊帳號的動作,以 OpenCart 系統為例,FB 帳號登入模組取得 facebook 使用者的個人資料之後,可以取得該使用者的 Email,去檢查 OpenCart 系統中是否有此 Email 的會員,若有,便呼叫登入程序進行登入動作,若否,就以從 facebook 取得的個人基本資料,去呼叫 OpenCart 的註冊程序進行新會員註冊。
由此可知,電商系統處理 FB 帳號登入,是透過 [facebook 登入] 應用程式編號、應用程式密鑰等資料,經過驗證及授權,從 facebook 系統所取得的 facebook user id 或 email,來比對檢查電商系統的會員資料,並不會綁定網站的網址或系統。
若轉換系統或平台,只要將舊系統上,用來辨識 facebook 使用者的會員資料欄位(例如 facebook user id 或 email)轉移到新系統上,就能在新系統上開發相同的會員登入檢查邏輯,讓舊系統上的 FB 帳號登入會員,也能在新系統上繼續使用 FB 帳號來登入了。
所以如果你想轉換系統或平台,只要您能取得舊系統或平台上,完整的會員資料,匯入到新的系統或平台,就可以讓這些 FB 帳號登入的舊會員繼續使用了。
參考資源
台灣電商社團 https://www.twec.org/
台灣電商 FB 社團 https://www.facebook.com/groups/opencart.taiwan/
OpenCart 網站代管、客製、維護 https://www.osec.tw/
OpenCart 台灣電商技術支援粉絲頁 https://www.facebook.com/ntcart/
OpenCart 台灣優化版專頁 https://www.osec.tw/opencart.html
OpenCart 台灣中文用戶討論區 https://www.ntcart.com/